home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1998 July
/
EnigmA AMIGA RUN 29 (1998)(G.R. Edizioni)(IT)[!][issue 1998-07 & 08].iso
/
recent
/
create.lha
/
CreateIndex.isrx
< prev
next >
Wrap
Text File
|
1998-06-01
|
6KB
|
216 lines
/* ImageStudio ARexx script **************************************/
/* V1.0 2 Nov 97 by James Perrin */
/* V2.0 19 Nov 97 added ability to update an index if new images
have been added to the directory */
/* V2.1 24 May 98 added skipping of files unable to load eg pr0gressive jpegs */
/* Allow commands to return results */
options results
/* On error, goto ERROR:. Comment out this line if you wish to */
/* perform your own error checking. */
signal on error
/* BEGIN PROGRAM *************************************************/
/* PROGRAM CONSTANTS - change these values to suit */
HTMLFile='Index.html' /* What to call the html file, Oh Yes */
SquareSize=100 /* Size of square into which to fit pic */
TNFormat='PNG' /* Thumbnail file format */
TNExten='png' /* Thumnail file extension */
TNPrefix='TN' /* Thumbnail prefix */
TableColumns=5 /* No. of pics per row */
TableBorder=1 /* Size of table borders, in pixels */
FilePattern='~('HTMLFile'|'TNPrefix'#?)' /* only change if you understand arexx */
/* set program variables */
nofile=0 /* flag that image can't be loaded */
/* get them files */
REQUEST_MULTIFILE TITLE '"Choose source files..."' PATTERN FilePattern STEM srcfiles.
/* Open html file and write basic info */
FILE_SPLIT FILE '"'srcfiles.files.0'"' STEM getpath.
FILE_JOIN PATHPART '"'getpath.pathpart'"' FILEPART HTMLFile VAR WriteFile
if open('OutFile',WriteFile,'w') then
do
call writeln('OutFile', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">')
call writeln('OutFile', '<HTML>')
call writeln('OutFile', '<HEAD>')
call writeln('OutFile', '<TITLE>Index of Directory '||getpath.pathpart||'</TITLE>')
call writeln('OutFile', '</HEAD>')
call writeln('OutFile', '<BODY>')
call writeln('OutFile', '<TABLE WIDTH="100%" BORDER='TableBorder'>')
ColumnCount=1
/* Process each file */
do l = 0 to (srcfiles.files.count - 1)
/* Create the destination file name */
FILE_SPLIT FILE '"'srcfiles.files.l'"' STEM filesplit.
filename=left(filesplit.filepart,index(filesplit.filepart,'.')-1)
FILE_JOIN PATHPART '"'filesplit.pathpart'"',
FILEPART '"'TNPrefix||filename'.'TNExten'"' VAR 'destfile'
/* if thumb nail not yet generated make one */
if exists(destfile) ~=1 then
do
/* Open the file, do our own error check */
signal off error
OPEN FILE '"'srcfiles.files.l'"' FORCE
if (rc~=0) then
do
/* deal with error */
nofile=1
signal on error
end
else
do
signal on error
/* Get and set size and depth info */
IMAGEINFO_GET STEM ImageInfo.
XPSize = SquareSize / ImageInfo.width
YPSize = SquareSize / ImageInfo.height
ImageDepth = ImageInfo.depth
/* 8-bit colors max */
if ImageDepth>8 then
ImageDepth=8
NumCol=1
do n=1 to ImageDepth
NumCol=NumCol*2
end
/* Fit image into square SquareSize X SquareSize */
if (XPSize < YPSize) then
PSize = (XPSize * 100) + 0.5
else
PSize = (YPSize * 100) + 0.5
PSize=trunc(PSize,0) /* number must be integer */
/* Rescale image , colour convertion neccessary for colour averaging */
COLOURS SIXTEENMILLION
SCALE PSize PSize PERCENT METHOD "AVERAGE"
COLOURS NUMCOLOURS NumCol
/* Save file */
SAVE FILE '"'destfile'"' FORMAT "PNG" ARGS '"INTERLACE=ADAM7"'
end
end /* if destfile */
/* Write HTML for ThumbNail */
if ColumnCount=1 then
call writeln('OutFile','<TR>')
if(~nofile) then /* TN exists */
call writeln('OutFile','<TD><A HREF="'filesplit.filepart'">'||,
'<IMG SRC="'TNPrefix||filename'.'TNExten'" ALT="'filesplit.filepart'"></A>')
else /* unable to create TN */
do
call writeln('OutFile','<TD><A HREF="'filesplit.filepart'">'||,
filesplit.filepart'"</A>')
nofile=0
end
ColumnCount=ColumnCount+1
if ColumnCount > 5 then
do
call writeln('OutFile','</TR>')
ColumnCount=1
end
end /* file loop */
/* Finish writing html and close file */
if ColumnCount>1 then
call writeln('OutFile','</TR>')
call writeln('OutFile', '</TABLE>')
call writeln('OutFile', '</BODY>')
call writeln('OutFile', '</HTML>')
call close('OutFile')
end /* if outfile */
/* END PROGRAM ***************************************************/
exit
/* On ERROR */
ERROR:
/* If we get here, either an error occurred with the command's */
/* execution or there was an error with the command itself. */
/* In the former case, rc2 contains the error message and in */
/* the latter, rc2 contains an error number. SIGL contains */
/* the line number of the command which caused the jump */
/* to ERROR: */
if datatype(rc2,'NUMERIC') == 1 then do
/* See if we can describe the error with a string */
select
when rc2 == 103 then
err_string = "ERROR 103, "||,
"out of memory at line "||SIGL
when rc2 == 114 then
err_string = "ERROR 114, "||,
"bad command template at line "||SIGL
when rc2 == 115 then
err_string = "ERROR 115, "||,
"bad number for /N argument at line "||SIGL
when rc2 == 116 then
err_string = "ERROR 116, "||,
"required argument missing at line "||SIGL
when rc2 == 117 then
err_string = "ERROR 117, "||,
"value after keywork missing at line "||SIGL
when rc2 == 118 then
err_string = "ERROR 118, "||,
"wrong number of arguments at line "||SIGL
when rc2 == 119 then
err_string = "ERROR 119, "||,
"unmatched quotes at line "||SIGL
when rc2 == 120 then
err_string = "ERROR 120, "||,
"line too long at line "||SIGL
when rc2 == 236 then
err_string = "ERROR 236, "||,
"unknown command at line "||SIGL
otherwise
err_string = "ERROR "||rc2||", at line "||SIGL
end
end
else if rc2 == 'RC2' then do
err_string = "ERROR in command at line "||SIGL
end
else do
err_string = rc2||", line "||SIGL
end
request_message TEXT '"'err_string'"'
exit